import { VOTE_OPP, VOTE_SUP } from '../action-types'

function delay() {
  return new Promise(resolve => {
    setTimeout(resolve, 1000)
  })
}

/**
 * 派发行为对象统一管理
 *  + voteAction 对象包含很多方法，每一个方法执行，都要返回一个派发的行为对象
 */

let voteAction = {
  support() {
    return async (dispatch) => {
      await delay()
      dispatch({
        type: VOTE_SUP
      })
    }
  },
  async oppose() {
    await delay()
    return {
      type: VOTE_OPP
    }
  }
}

export default voteAction